﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;

namespace vudu.PaginasWeb.G8Escuela
{
    public partial class ModificarUnaEscuela : System.Web.UI.Page
    {
        private int _idEscuela;
        
        
        
        protected void Page_Load(object sender, EventArgs e)
        {
            _idEscuela = Convert.ToInt32(Request.QueryString["cod"]);
            MensajeError.Visible = false;
            MensajeFinal.Visible = false;

            Escuela _escuela_anterior = new Escuela();
            _escuela_anterior = _escuela_anterior.ConsultarEscuelaPorId(_idEscuela);
            nombreEscuela.Text = _escuela_anterior.NombreEscuela;
            nombreEscuela.Visible = true;



//            Al integrar, por favor descomentar lo siguiente
            string miRol = (string)Session["rol"];
            if (miRol != "Universidad")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Universidad _universidad = (Universidad)Session["usuario"];
            string _nombre = _universidad.Nombre;
            Usuario.Text =  _nombre;
            //Usuario.Text = "Universidad: Catolica Andres Bello";


            if (!IsPostBack)
            {
                //carga la informacion de la escuela 
                nombre_nuevo.Text = _escuela_anterior.NombreEscuela;
                descripcion_nueva.Text = _escuela_anterior.DescripcionEscuela;
                director_nuevo.Text = _escuela_anterior.DirectorEscuela;
                direccion_nueva.Text = _escuela_anterior.DireccionEscuela;
                telefono_nuevo.Text = _escuela_anterior.TelefonoEscuela;
            }

            


        }
        
        // ModificarEscuela: se ejecuta al hacer click en Aceptar
        protected void ModificarEscuela(object sender, EventArgs e)
        {   
            Escuela _escuela = new Escuela();
            _escuela = _escuela.ConsultarEscuelaPorId(_idEscuela);
            try
            {

                Page.Validate("a");

                if (Page.IsValid)
                {
                    _escuela.NombreEscuela = ModificarNombreEscuela(_escuela.NombreEscuela);
                    _escuela.DescripcionEscuela = ModificarDescripcionEscuela(_escuela.DescripcionEscuela);
                    _escuela.DirectorEscuela = ModificarDirectorEscuela(_escuela.DirectorEscuela);
                    _escuela.DireccionEscuela = ModificarDireccionEscuela(_escuela.DireccionEscuela);

                    if (ModificarTelefonoEscuela(_escuela.TelefonoEscuela) == null)
                    {
                        MensajeTelefonoEscuela.Visible = true;
                        MensajeError.Visible = true;
                        
                    }

                    else
                    {
                        _escuela.TelefonoEscuela = ModificarTelefonoEscuela(_escuela.TelefonoEscuela);
                    

                bool escuela_modificada = _escuela.ModificandoEscuela(_escuela);

                    if (escuela_modificada)
                    {

                        MensajeFinal.Visible = true;
                    }

                    else
                    {
                        MensajeError.Visible = true;

                    }
                    }
                    
                }

            }
            catch (ConexionExeption)
            {
                MensajeError.Visible = true;
            }
            catch (TransaccionFallidaExeption)
            {
                MensajeError.Visible = true;
            }
            catch (Exception)
            {
                MensajeError.Visible = true;
            }
        }

        #region Funciones utilizadas para validar informacion del formulario
        
         //Funcion que valida si la informacion de Campo nombre es correcta.
        public String ModificarNombreEscuela(String _nombre)
        {
            if (nombre_nuevo.Text.Length == 0)
            {
                nombre_nuevo.Text = _nombre;
                return nombre_nuevo.Text;
            }

            else
            {
                return nombre_nuevo.Text;
            }
        }


        // Funcion que valida si la informacion de Campo director es correcta.
        public String ModificarDirectorEscuela(String _director)
        {
            if (director_nuevo.Text.Length == 0)
            {
                director_nuevo.Text = _director;
                return director_nuevo.Text;
            }

            else
            {
                return director_nuevo.Text;
            }
        }

        /// <summary>
        /// Funcion que valida si la informacion de Campo descripcion es correcta.
        /// </summary>
        public String ModificarDescripcionEscuela(String _descripcion)
        {
            if (descripcion_nueva.Text.Length == 0)
            {
                descripcion_nueva.Text = _descripcion;
                return descripcion_nueva.Text;
            }

            else
            {
                return descripcion_nueva.Text;
            }
        }

        /// <summary>
        /// Funcion que valida si la informacion de Campo direccion es correcta.
        /// </summary>
        public String ModificarDireccionEscuela(String _direccion)
        {
            if (direccion_nueva.Text.Length == 0)
            {
                direccion_nueva.Text = _direccion;
                return descripcion_nueva.Text;
            }

            else
            {
                return direccion_nueva.Text;
            }
        }

        /// <summary>
        /// Funcion que valida si la informacion de Campo telefono es correcta.
        /// </summary>
        public String ModificarTelefonoEscuela(String _telefono)
        {
            if (telefono_nuevo.Text.Length == 0)
            {
                telefono_nuevo.Text = _telefono;
                return telefono_nuevo.Text;
            }
            if (!ValidarSiEsNumero(telefono_nuevo.Text))
            {

                return null;
            }

            else
            {
                return telefono_nuevo.Text;
            }

        }


       

        //funcion que valida si el campo es un numero
        public bool ValidarSiEsNumero(string numero)
        {
            try
            {
                Convert.ToInt32(numero);
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        #endregion
        }
    }
